c++ - auto_ptr 和 dynamic_pointer_cast
全部标签 有不同的参数传递技术,例如-在编程语言中按值调用、按引用调用、按值调用结果、按名称调用、按文本调用和按需要调用。我见过C/C++中按值调用和按引用调用的实现;但其他技术仅通过简单的普通示例进行教授,我们被告知该示例使用“按值结果调用”,因此可以相应地回答。我想知道其他技术是否曾经用C/C++或任何其他语言实现过,或者它们只是理论上的? 最佳答案 C仅提供并且仍然提供按值传递。 关于c++-C/C++中的参数传递技术,我们在StackOverflow上找到一个类似的问题:
使用VisualStudio2014CTP、C++(v140)编译器:autogp=[&](BYTE*buff){autogp1=[](char*bff,char**p1){*p1=strstr((char*)bff,"(");return(*p1);};};错误:conditionalexpressionoftype'void'isillegal(也许auto真的输入错误?)如果我将内部lambda声明为std::functiongp1然后就可以了是我做错了什么还是编译器错误? 最佳答案 我没有运行2014,但您可能需要指定内部l
我处于这样一种情况,我需要在多态对象树的许多实例之间共享数据,但话又说回来,我需要共享数据是“每树”的,所以在基类中使用静态类成员是不行的确实是一个选择。我不想用指向共享数据的额外成员指针“加重”每个实例,所以我目前的方法(考虑到我使用树)是将共享数据作为树根节点的成员,并且每次访问共享数据通过一系列间接访问,具体取决于访问“全局树”数据的特定节点的深度。由于在某些情况下共享数据将被非常频繁地访问(每秒数百万次......至少这是预期的),我想知道是否有一些设计模式可以帮助我避免间接访问根目录节点,同时仍然没有给对象的足迹引入额外的膨胀。虽然可以将根节点指针“缓存”为本地指针,例如访问
我见过几个浏览器原生WebRTC应用程序的例子,比如将存储在服务器上的视频文件流式传输到一个或多个浏览器,但是有没有可能相反?IE。将网络摄像头从浏览器传输到用C、C++、Java或其他语言编写的服务器? 最佳答案 这是可能的。WebRTC使用开放标准通过网络传输内容。您可以在以下RFC中找到所有详细信息:http://tools.ietf.org/wg/rtcweb/如果您想编写自己的native应用程序来接收(甚至发送)WebRTC媒体,您可以从此处获取WebRTCnative代码:http://www.webrtc.org/w
我正在尝试分析其中包含函数调用的C源代码。我能够使用下面的源代码分析正常的函数调用以毫无问题地获取它们的参数,其中ce是一个CallExpr对象:1.if(ce!=NULL){2.QualTypeq=ce->getType();3.constType*t=q.getTypePtrOrNull();4.5.if(t!=NULL){6.llvm::errs()isFunctionPointerType()isPointerType()getCalleeDecl();13.while(D->getPreviousDecl()!=NULL)14.D=D->getPreviousDecl();1
我正在测试newfeature对于GCC4.9(自动输入参数)并出现一些奇怪的错误。#include#includeautofoo(autov){for(auto&&i:v)std::cout{1,2,3});}这给我以下错误:***glibcdetected***./a.out:munmap_chunk():invalidpointer:0x00007f87f58c6dc0***=======Backtrace:=========/lib/x86_64-linux-gnu/libc.so.6(+0x7e846)[0x7f87f4e4c846]./a.out[0x400803]/lib
我有一个正在处理的R包,它包含在src文件夹下用C和C++编写的代码。目前,该包在Rstudio上编译和工作,因为它遵循默认目录结构。随着项目的构建,我希望能够在src下的子文件夹中组织我的代码。按照“编写R扩展”-在子目录下编译的指示,我创建了一个名为“test”(/src/test)的文件夹,其中现在包含我的所有文件(*.c、*.cpp、*.h)和像这样修改我的Makevars-SOURCES_C=$(wildcardtest/*.c)SOURCES_CPP=$(wildcardtest/*.cpp)PKG_CPPFLAGS=-I${R_HOME}/include-I.PKG_LI
我已经将boost库从以前的1.54(svn源)更新到1.57(git源)。尽管我使用了相同的./b2参数,但目标目录不包含ptr_container库。具有克隆存储库的目录在此路径上正确包含ptr_container库:boost_git/libs/ptr_container我正在使用以下命令构建它:./b2--install--prefix=$SHL_PATH/boost-sNO_BZIP2=1-sNO_ZLIBruntime-link=sharedlink=shared-j2install但没有成功。编辑:似乎只有从git构建时才会出现问题。当我从boost站点下载zip包时,目
我有一个失败的动态转换。类布局是这样的:classA1{public:virtualintfoo1()=0;};classA2{public:virtualintfoo2();};classA3{public:virtualintfoo3();};classB:publicA1,publicA2,publicA3{intbar();};现在我使用指针(因此不会发生切片)进行向下转换。main(){Bb;A1*a1=dynamic_cast(&b);//okB*b1=dynamic_cast(a1);//okA2*a2_1=dynamic_cast(a1);//OSX10.7ok,OSX
在C和C++中,是否有固定的函数参数计算顺序?我的意思是,标准怎么说?是从左到右还是从右到左?我从书中得到的信息令人困惑。函数调用是否有必要使用stackonly实现?C和C++标准对此有何规定? 最佳答案 C和C++是两种完全不同的语言;不要假设相同的规则总是适用于两者。但是,在参数评估顺序的情况下:C99:6.5.2.2Functioncalls...10Theorderofevaluationofthefunctiondesignator,theactualarguments,andsubexpressionswithinth